package com.ebanma.cloud.usertestall.exception;

import com.ebanma.cloud.usertestall.domain.common.ErrorCode;

/**
 * @author: <a href="liuhe41@faw.com.cn">刘赫</a>
 * @date: 2023/3/23
 * @time: 17:16
 * @description:
 */
public class BusinessException extends RuntimeException{


    private final String code;

    /**
     * 根据枚举来构建业务异常
     * @param errorCode 错误代码
     */
    public BusinessException(ErrorCode errorCode) {
        //把错误码的描述给到父类
        super(errorCode.getDesc());
        this.code = errorCode.getCode();
    }

    /**
     * 根据自定义消息构建业务异常
     * @param errorCode 错误代码
     * @param message   消息
     */
    public BusinessException(ErrorCode errorCode, String message) {
        //把消息给到父类
        super(message);
        this.code = errorCode.getCode();
    }

    /**
     * 根据异常构建业务异常
     * @param errorCode 错误代码
     * @param cause     导致
     */
    public BusinessException(ErrorCode errorCode, Throwable cause) {
        //把异常的基类给到父类
        super(cause);
        this.code = errorCode.getCode();
    }


}
